package xin.cymall.aop;

import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.Around;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;

import xin.cymall.utils.Constant;
import xin.cymall.utils.ShiroUtils;


/**
 * 数据权限切面处理
 */
@Aspect
@Component
public class DataPermissionAspect {


    @Pointcut("@annotation(xin.cymall.annotation.DataPermission)")
    public void pointCut(){

    }
    @Around("pointCut()")
    public Object doAround(ProceedingJoinPoint  joinPoint)  throws Throwable{
    	Object[] args = joinPoint.getArgs();
    	Object result = null;
    	if(ShiroUtils.getUserEntity().getUserId().intValue()== Constant.SUPER_ADMIN) {
    		result = joinPoint.proceed(args); //超管
    	}else {
    		/**
    		 * 数据权限注解  基于业务系统的 组织架构等 设计
    		 * 获取当前登录人 的数据权限集合，通过注解方式 过滤 对应相应sql
    		 */
    		
    	}
        return result;
    }

}
